package com.syh.jn.scm.domain.upstream.event;

import com.syh.core.ddd.domain.DomainEvent;
import com.syh.jn.scm.domain.upstream.entity.finance.UpCostBill;

/**
 * 上游费用单事件
 */
public class UpCostBillEvent extends DomainEvent<UpCostBill> {
  public static final String UP_COST_BILL_CREATE = "upCostBillCreate";
  public static final String UP_COST_BILL_DESTROY = "upCostBillDestroy";
  public static final String UP_COST_BILL_STATE_CONFIRM = "upCostBillStateConfirm";
  public static final String UP_COST_BILL_STATE_UN_CONFIRM = "upCostBillStateUnConfirm";

  /**
   * 费用单创建事件
   *
   * @param values
   * @return
   */
  public static UpCostBillEvent buildCreate(Object[] values) {
    UpCostBillEvent upCostBillEvent = new UpCostBillEvent();
    upCostBillEvent.eventName = UP_COST_BILL_CREATE;
    upCostBillEvent.values = values;
    return upCostBillEvent;
  }

  /**
   * 费用单销毁事件
   *
   * @param values
   * @return
   */
  public static UpCostBillEvent buildDestroy(Object[] values) {
    UpCostBillEvent upCostBillEvent = new UpCostBillEvent();
    upCostBillEvent.eventName = UP_COST_BILL_DESTROY;
    upCostBillEvent.values = values;
    return upCostBillEvent;
  }

  /**
   * 上游确认
   *
   * @param values
   * @return
   */
  public static UpCostBillEvent buildUpCostBillStateConfirmEvent(Object[] values) {
    UpCostBillEvent upCostBillEvent = new UpCostBillEvent();
    upCostBillEvent.eventName = UP_COST_BILL_STATE_CONFIRM;
    upCostBillEvent.values = values;
    return upCostBillEvent;
  }

  /**
   * 上游取消
   *
   * @param values
   * @return
   */
  public static UpCostBillEvent buildUpCostBillStateUnConfirmEvent(Object[] values) {
    UpCostBillEvent upCostBillEvent = new UpCostBillEvent();
    upCostBillEvent.eventName = UP_COST_BILL_STATE_UN_CONFIRM;
    upCostBillEvent.values = values;
    return upCostBillEvent;
  }
}
